package com.atlin.project.service;

import com.atlin.project.model.domain.ServiceUsage;
import com.atlin.project.model.vo.serviceUsage.ServiceUsageVO;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * @author atlin
 * @description 针对表【service_usage(用户AI服务表)】的数据库操作Service
 * @createDate 2024-11-23 15:00:29
 */
public interface ServiceUsageService extends IService<ServiceUsage> {

    /**
     * 查询是否有剩余token
     *
     * @param userId 用户
     * @return 剩余tokens
     */
    Long getLeftTokens(Long userId);

    /**
     * 更新token ,消耗更新或充值更新。
     *
     * @param userId 用户
     * @param tokens 使用或充值的tokens
     * @param invoke 是使用还是充值 true -- 调用AI服务
     */
    Boolean updateTokens(Long userId, Long tokens, boolean invoke);

    /**
     * 根据用户ID查询服务使用记录
     *
     * @param userId
     * @return
     */
    ServiceUsage getServiceUsageByUserId(Long userId);

    /**
     * 获取包装类
     *
     * @param serviceUsage
     * @return
     */
    ServiceUsageVO getServiceUsageVO(ServiceUsage serviceUsage);

}
